PROJET 4 - CONSTRUISEZ UN MODELE DE SCORING

Ce notebook est une version de synthèse du notebook de travail originel.

La société financière "Prêt à dépenser" souhaite pouvoir utiliser un modèle de scoring l'aidant à prédire le risque de défaut de paiement d'un client ayant peu ou pas d'historique de prêt.
Le modèle devra permettre aux conseillers qui l'utilisent de comprendre les motifs de l'acceptation ou du rejet de la demande de prêt.

0. Quel fichier utiliser ?

Sur les 9 fichiers fournis (hors celui détaillant les informations contenues dans les autres) :

Puisque le modèle est destiné à évaluer le risque de défaut d'emprunteurs n'ayant pas d'historique de crédit, il est bien sûr à utiliser.

Au final, seules les données contenues dans application_train.csv seront utilisées pour l'entraînement du modèle.

1. Préparation des données

On définit une classe Cleaner avec deux méthodes :

On a ramené le nombre de variables de 120 à 67.

2. Définition de l'objectif

2.1 Choix de la métrique

Nous cherchons à établir un modèle de classification binaire. Le résultat peut donc être positif (cas du client qui est en défaut de paiement) ou négatif (le client rembourse normalement).

Un faux positif est un emprunteur qui serait à tort estimé comme présentant un risque de défaut.
Un faux négatif est un emprunteur qui serait estimé à tort comme ne présentant pas de risque de défaut.

L'objectif de l'établissement bancaire est de détecter le plus possible des cas positifs (sensibilité élevée), et aussi de minimiser le taux de faux négatifs : en effet, cela voudrait dire qu'elle accorde un prêt à un client qui ne le remboursera pas.

Pour autant, le taux de faux positifs n'est pas à négliger non plus car il représente pour un établissement une perte d'opportunité, en la personne d'un emprunteur qui aurait été solvable et auquel il aurait été possible de vendre d'autres produits et services.

Le taux de faux positifs est estimé par la précision (nombre total de vrais positifs divisé par le nombre total de positifs prédits). Le taux de faux négatifs est estimé par 1 - recall (le recall, ou sensibilité, étant égal au nombre de vrais positifs rapporté au nombre total de cas positifs).

L'optimisation entre la précision et le recall est donnée par la la maximisation du F1-score. Il s'agit de la moyenne harmonique de ces deux valeurs. Toutefois ce score attribue le même poids à ces derniers. Or nous souhaitons quant à nous privilégier la limitation des faux négatifs.

On utilisera donc le F2-score (c'est-à-dire un F-beta avec un Beta égal à 2), qui surpondère les faux négatifs (source) :

$ F_{\beta}=\frac{(1+{\beta}^{2})TP}{(1+{\beta}^{2})TP+{\beta}^{2}FN+FP} $

2.2 Base de comparaison : classifieur naïf

On établit un dummy classifier qui servira de point de comparaison pour évaluer l'efficacité du modèle. Pour le choix du type de dummy classifier, vérifions la répartition des classes dans les données :

Comme on pouvait s'y attendre, les cas de défaut sont très minoritaires. Un modèle qui prédirait systématiquement la classe négative (pas de défaut de paiement, l'emprunteur paie normalement) aurait donc une accuracy de l'ordre de 92%.

On choisit un Dummy Classifier qui renvoie des prédictions avec la même distribution que le jeu d'entraînement, afin d'avoir la même sensibilité (taux de vrais positifs) et la même spécificité (taux de vrais négatifs).

L'accuracy de ce classifieur est de :

Et son F2 score est de :

Notre modèle doit donc surperformer ce classifieur naïf.

La performance sera évaluée au regard du F2-score, car la précision n'est pas une métrique pertinente dans le cas de données fortement déséquilibrée. Toutefois la précision sera conservée dans la suite de l'étude à titre d'information.

3. Entraînement

La classe Trainer ci-dessous va permettre de tester plusieurs modèles et d'enregistrer les performances de chacun d'eux. Pour des raisons pratique, l'entraînement ne portera pas sur l'intégralité des données mais sur une proportion d'entre elles (par défaut 5%).

Construisons un tableau récapitulatif pour suivre l'évolution des scores selon les progrès de la modélisation.

Pour pouvoir utiliser une stratégie d'optimisation KStratifiedDFolds, on utilisera la fonction RandomizedSearchCV de sckit-learn. Comme la GridSearchCV, elle permet :

Le recours à RandomizedSearchCV permet quant à lui de raccourcir le temps d'entraînement, par sélection des jeux d'hyperparamètres.

3.1 Decision Tree Classifier

On étudie l'impact des paramètres max_depth, min_samples_split et min_samples_leaf sur le modèle.

La modification des hyperparamètres dégrade le F2-score. On peut mettre les variations sur le compte du fait que la méthode mise en place change l'échantillon à chaque fois.

3.2. Régression logistique

Le F2-score est amélioré, alors que l'accuracy a baissé. Ce cas illustre bien le compromis à faire entre les métriques, et le fait que l'accuracy n'est pas forcément une bonne métrique dans le cas d'une distribution non équilibrée.

3.3 SVC linéaire

3.4 SVC à noyau

3.5 Utilisation d'un autoML

En raison du temps d'entraînement du modèle d'autoML, le modèle ne figure pas dans le présent notebook (l'ensemble des paramètres figure dans le notebook de travail).

On reporte ici le meilleur F2-score obtenu par l'autoML, qui est de 38,78%.

Le F2-score obtenu via l'autoML est du même ordre de grandeur que les meilleurs F2-scores obtenus sur les précédents modèles étudiés. On en conclut qu'on atteint les limites de l'optimisation du modèle (en l'état actuel des connaissances de l'auteur de ces recherches !).

3.6 Commentaire

On a également testé l'entraînement sur :

Il est donc acceptable de rester sur les données réduites, tant en nombre de variables qu'en nombre de données.

4. Conclusions

4.1 Choix du modèle

Récapitulons les performances des modèles étudiés, en nous attachant au F2-score :

Les modèles offrant les meilleures performances au regard du F2-score sont la régression logistique et le SVM linéaire. Le recours à un modèle non linéaire simple (on n'a pas étudié les modèles neuronaux) ne semble pas améliorer les performances.

Comment choisir entre ces deux modèles ?

4.2 Principales variables

On relance le modèle retenu sur l'ensemble des données, pour plus de précision quant aux modalités les plus significatives des variables catégorielles.

Coefficients les plus importants (jouant pour au moins 10% dans le total), classés par valeur absolue :

20 premiers coefficients positifs (facteurs qui augmentent la probabilité de défaut)

20 premiers coefficients négatifs (facteurs qui diminuent la probabilité de défaut)

On constate que la catégorie socio-professionnelle et le niveau d'étude sont les facteurs prépondérants de décision du modèle.

Le modèle souffre toutefois d'une sensibilité et d'une spécificités perfectibles :